Node.js 12 實戰

Node.js 12 實戰

作者: 趙榮嬌
出版社: 清華大學
出版在: 2020-08-01
ISBN-13: 9787302557067
ISBN-10: 7302557063





內容描述


本書分為四大部分共17章,第一部分為Nodejs 12概述和開發環境介紹,共兩章。第二部分是Nodejs 12編程基礎,主要介紹Nodejs編程的基本知識。第三部分為Nodejs開發實踐,全面講解Nodejs在實際開發中的具體應用和實際案例。第四部分Nodejs開發項目實例,以項目的形式為讀者深入講解建立一個Nodejs應用的整個過程。


目錄大綱


目  錄
 
 
第1章  Node.js與JavaScript 1
1.1  JavaScript與前端 1
1.2  第一個JavaScript實現的Hello World 1
1.3  Node.js 12安裝前的準備 3
1.3.1  在Microsoft Windows系統上安裝Node.js 3
1.3.2  在Linux發行版上安裝Node.js 5
1.3.3  在Mac OS X上安裝Node.js 7
1.3.4  Mac OS X中Node.js版本的切換和升級 7
1.4  JavaScript與Node.js對比 10
1.5  第一個Node.js實現的Hello World 10
1.5.1  純腳本示例 10
1.5.2  交互模式 11
1.5.3  創建Node.js項目 11
1.6  Node.js的開發調試工具Inspect 12
第2章  NPM、REPL與Node.js工作原理 15
2.1  NPM的使用 15
2.1.1  NPM簡介 15
2.1.2  NPM的工作原理 16
2.1.3  package.json屬性說明 17
2.1.4  NPM的常用命令 19
2.2  REPL的使用 21
2.3  Runtime和vm 22
2.3.1  Runtime 22
2.3.2  vm 23
2.4  回調函數 24
2.5  同步/異步和阻塞/非阻塞 25
2.5.1  同步和異步 26
2.5.2  阻塞和非阻塞 28
2.5.3  同步/異步和阻塞/非阻塞 29
2.6  單線程和多線程 29
2.7  並行和並發 30
2.8  事件循環 31
第3章  Node.js的語法 34
3.1  ECMAScript 6標準 34
3.2  數組常用方法及ES6中的數組方法 34
3.3  函數 40
3.3.1  參數的默認值 40
3.3.2  rest參數 44
3.3.3  name屬性 45
3.3.4  箭頭函數 46
3.4  閉包 49
3.5  對象 51
3.5.1 屬性的簡潔表示 52
3.5.2  屬性名錶達式 53
3.5.3  方法的name屬性 55
3.5.4  對象的擴展運算符 56
3.5.5  對象的新方法 58
3.5.6  屬性的可枚舉性 67
3.5.7  屬性的遍歷 68
3.6  類 69
3.6.1  基礎用法 69
3.6.2  封裝與繼承 74
3.6.3  super關鍵字 77
3.7  ES6的模塊化 78
3.7.1  基本用法 78
3.7.2  as 的用法 79
3.7.3  import命令的特點 80
3.7.4  export與import 81
3.8  使用Babel轉碼 82
3.9  使用N-API 84
第4章  Node.js常用模塊 88
4.1  Module 88
4.1.1  創建和使用模塊 88
4.1.2  require方法中的文件查找策略 89
4.2  Buffer 93
4.2.1  Buffer與字符編碼及轉換 93
4.2.2  Buffer類及其方法 94
4.2.3  Buffer與性能 99
4.3  File System 99
4.3.1  異步讀文件 100
4.3.2 同步讀文件 101
4.3.3  打開文件 102
4.3.4  寫入文件 103
4.3.5  獲取文件信息 104
4.3.6  fs.read異步讀文件 105
4.3.7  fs.close異步關閉文件 106
4.4  HTTP/HTTP2服務 107
4.4.1  http模塊 108
4.4.2  http2模塊 111
4.5  TCP服務 114
4.5.1  構建TCP服務器 115
4.5.2  服務器和客戶端之間的通信 118
4.5.3  構建TCP客戶端 119
4.6  SSL 121
4.6.1  SSL簡介 121
4.6.2  使用OpenSSL進行證書生成 123
4.6.3  Node.js實現HTTPS的配置 125
4.7  WebSocket 126
4.7.1  ws模塊 126
4.7.2  實戰:ws簡易聊天室 128
4.8  流 136
4.8.1  可讀流 137
4.8.2  可寫流 138
4.8.3  管道流 140
4.9  事件 141
4.9.1  註冊事件名&監聽器 142
4.9.2  給監聽器listener傳入參數與this 143
4.9.3  最多只觸發一次的監聽器 143
4.9.4  添加監聽器/移除監聽器事件 144
4.9.5  錯誤事件 144
4.10  實戰演練RESTful API 145
第5章  Node.js調試 152
5.1  基礎調試 152
5.1.1  基礎API 152
5.1.2  自定義stdout 154
5.1.3  控制調試日誌 155
5.2  進階調試 160
5.2.1  使用Inspect調試 161
5.2.2  使用VSCode IDE調試 164
第6章  Node.js的異步I/O與多線程 167
6.1  異步I/O 167
6.1.1  異步I/O的必要性 167
6.1.2  操作系統對異步I/O的支持 168
6.1.3  異步I/O與輪詢技術 169
6.2  進程、線程、協程等 169
6.2.1  進程、線程、協程 169
6.2.2  應用場景 171
6.2.3  並發與並行 171
6.3  在Node.js中實現多線程 172
6.3.1  單線程的JavaScript 172
6.3.2  Node.js 內部分層 174
6.3.3  libuv 174
6.3.4  多進程 175
6.4  Node性能小結 176
第7章  Node.js的錯誤處理 177
7.1  錯誤的分類 177
7.2  函數的錯誤處理 178
7.3  實戰演練異常-錯誤處理 179
7.3.1  同步代碼的異常捕獲處理 179
7.3.2  異步代碼的錯誤處理 180
7.3.3  使用event方式來處理異常 181
7.3.4  Callback方式 182
7.3.5  Promise方式 182
7.3.6  使用domain模塊 185
7.3.7  多進程模式加異常捕獲後重啟 186
第8章  Node.js的測試 188
8.1  什麽是單元測試 188
8.2  一個簡單的單元測試 189
8.3  Mocha 190
8.4  Assert 192
8.5  測試HTTP接口 196
8.6  代碼覆蓋率工具istanbul 197
第9章  Node.js的數據處理 199
9.1  MySQL 199
9.1.1  Node.js 連接 MySQL 199
9.1.2  數據庫操作 200
9.1.3  使用Sequelize操作數據庫 202
9.2  MongoDB 208
9.2.1  創建數據庫 208
9.2.2  數據庫操作 209
9.3  Redis 215
9.3.1  Node.js連接Redis 215
9.3.2  列表——List 217
9.3.3  集合——Set 218
9.3.4  消息中介 218
第10章  實戰:使用原生JavaScript開發Node.js案例 220
10.1  項目任務 220
10.2  HTTP服務器 221
10.3  服務端模塊化 223
10.4  設計請求路由 224
10.5  請求處理程序 229
10.6  非阻塞式處理請求響應 232
10.7  處理POST請求 235
10.8  文件上傳 241
第11章  實戰:基於Vue+Express+MongoDB實現一個後台管理系統 248
11.1  項目結構 248
11.2  前端代碼實現 249
11.2.1  項目依賴的模塊 249
11.2.2  註冊頁 250
11.2.3  登錄頁 254
11.2.4  管理頁 258
11.3  後端代碼實現 266
11.3.1  數據庫設計 266
11.3.2  啟動應用 268
11.3.3  註冊/登錄接口 268
11.3.4  增刪改查接口 271
 
第12章  實戰:基於Koa+MongoDB 實現博客網站 279
12.1  項目結構 279
12.2  數據庫設計 281
12.2.1  數據準備 281
12.2.2  連接數據庫 281
12.2.3  創建表結構 282
12.3  服務端實現 283
12.3.1  啟動後台應用 283
12.3.2  配置中間件 283
12.3.3  搭建路由和控制器 287
12.3.4  賬戶管理 290
12.3.5  博客管理 294
12.4  博客後台管理的實現 297
12.4.1  目錄結構 297
12.4.2  權限管理 297
12.4.3  博客管理 309
12.5  博客前臺站點的實現 322
12.5.1  目錄結構 322
12.5.2  博客列表頁 323
12.5.3  博客詳情頁 327




相關書籍

Go 語言高併發與微服務實戰

作者 朱榮鑫 黃迪璿 張天

2020-08-01

統計思維 : 大數據時代瞬間洞察因果的關鍵技能

作者 西內啟

2020-08-01

PHP 經典實例, 3/e

作者 大衛·斯克拉 (David Sklar) 亞當·切貝特伯格 (Adam Trachtenberg)

2020-08-01